home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / comm / ca29_3.zip / LEARN.CMD < prev    next >
OS/2 REXX Batch file  |  1992-09-21  |  22KB  |  1,385 lines

  1. SET TTHR OFF
  2. S19="Learn   ver 1.0     "
  3. CURS N91,N92
  4. LEGE S19
  5. SUBD S18
  6. DLDI S17
  7. SSIZ N99
  8. SAVE 0,0,N99-2,79
  9. ON ESCA GOSU ESCAPE
  10. SET FLAG(1) OFF
  11. IF STRCMP "_PRIN" "ON"
  12. SET FLAG(1) ON
  13. PRINTER OFF
  14. ENDI
  15. Get_Outp:
  16. S1="Enter a file name to be output:"
  17. GOSU Ask_File
  18. IF NOT SUCCESS EXIT
  19. S16=S0
  20. IF ISFILE S16
  21. S0=S16*" already exists.  Overwrite it? Y/N (cr=no)"
  22. GOSU Ask_YN
  23. IF NOT SUCCESS GOTO Get_Output
  24. ENDI
  25. FOPENO S16 TEXT
  26. IF NOT SUCCESS
  27. S0="Error opening output file: "*S16
  28. GOSU Error
  29. GOTO Get_outp
  30. ENDI
  31. GOSU Initial
  32. SET CHAT OFF
  33. GOTO START
  34. Escape:
  35. SET FLAG(0) ON
  36. RETU
  37. End_Lear:
  38. DWIN CLEAR
  39. IF FLAG(2) and STRCMP "_LOGG" "ON "
  40. WRIT "LOG CLOSE!"
  41. LOG CLOS
  42. ENDI
  43. WRIT "^Z" 2
  44. FCLOSEO
  45. SET DLDI S17
  46. CHDI S18
  47. REST
  48. LOCA N91,N92
  49. IF FLAG(1)
  50. PRINTER ON
  51. ELSE
  52. PRINTER OFF
  53. ENDI
  54. RETU
  55. Exit:
  56. S0="Do you wish to terminate LEARN?  Enter Y to terminate."
  57. GOSU Ask_YN
  58. IF SUCCESS
  59. GOSU End_Lear
  60. EXIT
  61. ENDI
  62. SET FLAG(0) OFF
  63. RETU
  64. Start:
  65. N90=0
  66. S11=""
  67. S12=""
  68. SET FLAG(0) OFF
  69. SET FLAG(9) OFF
  70. SET FLAG(8) OFF
  71. GOSU Screen
  72. LOCA 1,1
  73. DWIN N99-12,2 N99-12 77
  74. GOTO Main
  75. Output:
  76. WRIT S0
  77. WRIT "!"
  78. Main:
  79. LOCA N93,N94
  80. IF FLAG(0) GOSUB Exit
  81. IF NOT HITKEY
  82. IF RECEIVE GOSUB Receive
  83. GOTO Main
  84. ENDI
  85. KEYG S1
  86. LENG S1 N0
  87. SWIT N0
  88. CASE 1
  89. GOTO ASCII
  90. ENDC
  91. CASE 2
  92. GOTO CONTROL
  93. ENDC
  94. CASE 4
  95. GOTO FUNCTION
  96. ENDC
  97. ENDS
  98. GOTO Main
  99. KbdDisp:
  100. IF GT N90 0
  101. S0=S10(0:n90-1)
  102. PRES S0
  103. ATSA N99-12,2 (Default) S0*"  "
  104. ENDI
  105. N94=N90+2
  106. GOTO Main
  107. Receive:
  108. DWIN 1,0,(N99-14),79
  109. IF FLAG(1) PRINTER ON
  110. LOCA N95,N96
  111. S12=S11
  112. RGET S11 80 1
  113. CURS N95,N96
  114. IF FLAG(1) PRINTER OFF
  115. DWIN N99-12,2 N99-12,77
  116. RETU
  117. ASCII:
  118. IF FLAG(8)
  119. PRES S1
  120. TRAN S1
  121. GOTO Main
  122. ENDI
  123. IF GT (N90+2) 60
  124. SOUN 100,100
  125. GOTO Main
  126. ENDI
  127. S10(N90:N90)=S1
  128. INC N90
  129. IF STRCMP S1 "!" or STRCMP S1 "^"
  130. S10(N90:N90)=S1
  131. INC N90
  132. ENDI
  133. IF FLAG(9) GOTO Transmit
  134. GOTO KbdDisp
  135. Control:
  136. S0="0x"*S1
  137. N0=S0
  138. N0=N0+64
  139. S0="^"
  140. ITOC N0 S0(1:1)
  141. IF FLAG(8)
  142. TRAN S0
  143. GOTO Main
  144. ENDI
  145. IF (NOT FLAG(9)) and STRCMP S1 "08"
  146. GOTO Backspac
  147. ENDI
  148. IF STRCMP S1 "0D"
  149. GOTO RETURN
  150. ENDI
  151. IF GT (N90+2) 60
  152. SOUN 100,100
  153. GOTO Main
  154. ENDI
  155. S10(N90:N90+1)=S0(0:1)
  156. N90=N90+2
  157. IF FLAG(9) GOTO Transmit
  158. GOTO KbdDisp
  159. Backspac:
  160. IF ZERO N90
  161. GOTO KbdDisp
  162. ENDI
  163. DEC N90
  164. IF STRCMP S10(N90-1:N90-1) "^" or STRCMP S10(N90-1:N90) "!!"
  165. DEC N90
  166. ENDI
  167. GOTO KbdDisp
  168. Return:
  169. IF NOT ZERO N90
  170. S10=S10(0:N90-1)*"!"
  171. ELSE
  172. S10="!"
  173. ENDI
  174. N90=N90+1
  175. Transmit:
  176. GOSU Waitfor
  177. WRIT "TRANSMIT `""
  178. IF STRCMP S10(N90-1:N90-1) "!!"
  179. WRIT S10 N90-1
  180. WRIT "!!" 2
  181. ELSE
  182. WRIT S10 N90
  183. ENDI
  184. WRIT "`"!"
  185. TRAN S10(0:N90-1)
  186. N90=0
  187. CLEA (default)
  188. N94=2
  189. GOTO Main
  190. Waitfor:
  191. LJ S11
  192. S11=S11&""
  193. LENG S11 N1
  194. IF NOT ZERO N1
  195. S0=S11
  196. GOTO EmitWait
  197. ENDI
  198. LJ S12
  199. S12=S12&""
  200. LENG S12 N1
  201. IF NOT ZERO N1
  202. S0=S12
  203. GOTO EmitWait
  204. ENDI
  205. WRIT ";!"
  206. WRIT "; WAITFOR may be needed here!"
  207. WRIT ";!"
  208. RETU
  209. EmitWait:
  210. PRES S0
  211. LENG S0 N1
  212. WRIT "WAITFOR `""
  213. WRIT S0
  214. WRIT "`"!"
  215. WRIT ";*IF NOT WAITFOR GOTO ...!"
  216. S11=""
  217. S12=""
  218. RETU
  219. Function:
  220. IF FLAG(8) and NOT STRCMP S1 "4000"
  221. SOUN 100,100
  222. GOTO Main
  223. ENDI
  224. SWIT S1
  225. CASE "2E00"
  226. GOTO Clear
  227. ENDC
  228. CASE "1200"
  229. GOTO Echo
  230. ENDC
  231. CASE "2C00"
  232. GOTO Mask
  233. ENDC
  234. CASE "2600"
  235. GOTO ScrSize
  236. ENDC
  237. CASE "2300"
  238. GOTO Hangup
  239. ENDC
  240. CASE "2000"
  241. GOTO Dial
  242. ENDC
  243. CASE "1900"
  244. GOTO Parms
  245. ENDC
  246. CASE "3100"
  247. GOTO Encrypt
  248. ENDC
  249. CASE "2200"
  250. GOTO Blnkln
  251. ENDC
  252. CASE "1000"
  253. GOTO CRLF
  254. ENDC
  255. CASE "7500"
  256. GOTO Break
  257. ENDC
  258. CASE "7200"
  259. GOTO Printer
  260. ENDC
  261. CASE "4900"
  262. GOTO Upload
  263. ENDC
  264. CASE "5100"
  265. GOTO Download
  266. ENDC
  267. CASE "7800"
  268. GOTO Alt_1
  269. ENDC
  270. CASE "7900"
  271. GOTO Alt_2
  272. ENDC
  273. CASE "7A00"
  274. GOTO Alt_3
  275. ENDC
  276. CASE "7B00"
  277. GOTO Alt_4
  278. ENDC
  279. CASE "7C00"
  280. GOTO Alt_5
  281. ENDC
  282. CASE "7D00"
  283. GOTO Alt_6
  284. ENDC
  285. CASE "7E00"
  286. GOTO Alt_7
  287. ENDC
  288. CASE "7F00"
  289. GOTO Alt_8
  290. ENDC
  291. CASE "8000"
  292. GOTO Alt_9
  293. ENDC
  294. CASE "8100"
  295. GOTO Alt_0
  296. ENDC
  297. CASE "3B00"
  298. GOTO Accessry
  299. ENDC
  300. CASE "3C00"
  301. GOTO Script
  302. ENDC
  303. CASE "3D00"
  304. GOTO Chdir
  305. ENDC
  306. CASE "3E00"
  307. GOTO DlDir
  308. ENDC
  309. CASE "3F00"
  310. GOTO LineChar
  311. ENDC
  312. CASE "4000"
  313. GOTO Hold
  314. ENDC
  315. CASE "4100"
  316. GOTO Log
  317. ENDC
  318. CASE "4300"
  319. GOTO LogHold
  320. ENDC
  321. CASE "4400"
  322. GOSU Help
  323. ENDC
  324. CASE "7100"
  325. GOTO Shell
  326. ENDC
  327. DEFA
  328. SOUN 100,100
  329. ENDC
  330. ENDS
  331. GOTO Main
  332. SHELL:
  333. S16="_OFILE"
  334. FCLOSEO
  335. DWIN Clear
  336. SHEL
  337. DWIN N99-12,2 N99-12 77
  338. LEGE S19
  339. FOPENO S16 TEXT APPEND
  340. GOTO Main
  341. Clear:
  342. DWIN 1,0,(N99-14),79
  343. CLEA (default)
  344. CURS N95,N96
  345. DWIN N99-12,2 N99-12,77
  346. LOCA N93,N94
  347. S0="CLEAR"
  348. GOTO Output
  349. Echo:
  350. S0="SET DUPLEX HALF"
  351. IF STRCMP "_DUPL" "HALF"
  352. S0="SET DUPLEX FULL"
  353. ENDI
  354. PERF S0
  355. GOSU StatusLi
  356. GOTO Output
  357. Mask:
  358. S0="SET MASK ON"
  359. IF STRCMP "_MASK" "ON "
  360. S0="SET MASK OFF"
  361. ENDI
  362. PERF S0
  363. GOSU StatusLi
  364. GOTO Output
  365. ScrSize:
  366. S0="SET 43"
  367. IF GT "_SSIZ" 25
  368. S0="SET 25"
  369. ENDI
  370. PERF S0
  371. SSIZ N99
  372. GOSU Screen
  373. GOTO Output
  374. Alt_0:
  375. S0="MACRO 0"
  376. GOTO Send_Mac
  377. Alt_1:
  378. S0="MACRO 1"
  379. GOTO Send_Mac
  380. Alt_2:
  381. S0="MACRO 2"
  382. GOTO Send_Mac
  383. Alt_3:
  384. S0="MACRO 3"
  385. GOTO Send_Mac
  386. Alt_4:
  387. S0="MACRO 4"
  388. GOTO Send_Mac
  389. Alt_5:
  390. S0="MACRO 5"
  391. GOTO Send_Mac
  392. Alt_6:
  393. S0="MACRO 6"
  394. GOTO Send_Mac
  395. Alt_7:
  396. S0="MACRO 7"
  397. GOTO Send_Mac
  398. Alt_8:
  399. S0="MACRO 8"
  400. GOTO Send_Mac
  401. Alt_9:
  402. S0="MACRO 9"
  403. Send_Mac:
  404. PERF S0
  405. GOTO Output
  406. Hangup:
  407. GOSU Waitfor
  408. S0="HANGUP"
  409. PERF S0
  410. GOTO Output
  411. Break:
  412. GOSU Waitfor
  413. S0="BREAK"
  414. PERF S0
  415. GOTO Output
  416. Printer:
  417. IF FLAG(1)
  418. S0="PRINTER OFF"
  419. SET FLAG(1) OFF
  420. ELSE
  421. S0="PRINTER ON"
  422. SET FLAG(1) ON
  423. ENDI
  424. WRIT S0*"!"
  425. GOSU StatusLi
  426. GOTO Main
  427. LineChar:
  428. IF FLAG(9)
  429. SET FLAG(9) OFF
  430. ELSE
  431. SET FLAG(9) ON
  432. ENDI
  433. GOSU StatusLi
  434. GOTO Main
  435. Hold:
  436. IF FLAG(8)
  437. SET FLAG(8) OFF
  438. ELSE
  439. SET FLAG(8) ON
  440. ENDI
  441. GOSU StatusLi
  442. GOTO Main
  443. UpLoad:
  444. GOSU Ask_Meth
  445. S1="/NONAME/"
  446. SWIT S0
  447. CASE "_NULL"
  448. GOTO Main
  449. ENDC
  450. CASE "0"
  451. GOSU Ask_Name
  452. S0="SENDFILE ZMODEM S1"
  453. ENDC
  454. CASE "1"
  455. GOSU Ask_Name
  456. S0="SENDFILE WXMODEM S1"
  457. ENDC
  458. CASE "2"
  459. GOSU Ask_Name
  460. S0="SENDFILE XMODEM S1"
  461. ENDC
  462. CASE "3"
  463. GOSU Ask_Name
  464. S0="SENDFILE ASCII S1"
  465. ENDC
  466. CASE "4"
  467. GOSU Ask_Name
  468. S0="SENDFILE YMODEM S1"
  469. ENDC
  470. CASE "5"
  471. S0="SENDFILE CISB"
  472. ENDC
  473. CASE "6"
  474. S0="SENDFILE QuickB"
  475. ENDC
  476. CASE "7"
  477. GOSU Ask_Name
  478. S0="SENDFILE KERMIT S1"
  479. ENDC
  480. CASE "8"
  481. GOSU Ask_Name
  482. S0="SENDFILE BYMODEM S1"
  483. ENDC
  484. CASE "9"
  485. GOSU Ask_Name
  486. S0="SENDFILE BYMOG S1"
  487. ENDC
  488. DEFA
  489. SOUN 100,100
  490. GOTO Main
  491. ENDC
  492. ENDS
  493. Transfer:
  494. IF NULL S1 GOTO Main
  495. PERF S0
  496. IF NOT STRCMP S1 "/NONAME/"
  497. WRIT "; File transfer!"
  498. WRIT "MESS `"Enter the file name: `"!"
  499. WRIT "GET S1 60!"
  500. ENDI
  501. GOTO Output
  502. DownLoad:
  503. GOSU Ask_Meth
  504. S1="/NONAME/"
  505. SWIT S0
  506. CASE "_NULL"
  507. GOTO Main
  508. ENDC
  509. CASE "0"
  510. S0="GETFILE ZMODEM S1"
  511. ENDC
  512. CASE "1"
  513. GOSU Ask_Name
  514. S0="GETFILE WXMODEM S1"
  515. ENDC
  516. CASE "2"
  517. GOSU Ask_Name
  518. S0="GETFILE XMODEM S1"
  519. ENDC
  520. CASE "3"
  521. GOSU Ask_Name
  522. S0="GETFILE ASCII S1"
  523. ENDC
  524. CASE "4"
  525. GOSU Ask_Name
  526. S0="GETFILE YMODEM S1"
  527. ENDC
  528. CASE "5"
  529. S0="GETFILE CISB"
  530. ENDC
  531. CASE "6"
  532. S0="GETFILE QuickB"
  533. ENDC
  534. CASE "7"
  535. S0="GETFILE KERMIT"
  536. ENDC
  537. CASE "8"
  538. S0="GETFILE BYMODEM"
  539. ENDC
  540. CASE "9"
  541. S0="GETFILE BYMOG"
  542. ENDC
  543. DEFA
  544. SOUN 100,100
  545. GOTO Main
  546. ENDC
  547. ENDS
  548. GOTO Transfer
  549. Ask_Meth:
  550. WOPE 2 20 14 60 (contrast) ASK_ESC
  551. ATSA 2 22 (contrast) " Learn UpLoad/Download "
  552. ATSA 3 22 (contrast) " 1) Windowed XMODEM"
  553. ATSA 4 22 (contrast) " 2) CRC/Checksum XMODEM"
  554. ATSA 5 22 (contrast) " 3) ASCII transfer "
  555. ATSA 6 22 (contrast) " 4) YMODEM/XMODEM-1K"
  556. ATSA 7 22 (contrast) " 5) CIS-B         "
  557. ATSA 8 22 (contrast) " 6) CIS Quick-B     "
  558. ATSA 9 22 (contrast) " 7) Kermit     "
  559. ATSA 10 22 (contrast) " 8) Batch YMODEM      "
  560. ATSA 11 22 (contrast) " 9) Batch YMODEM-G "
  561. ATSA 11 22 (contrast) " 0) ZMODEM "
  562. ATSA 12 20 (contrast) "├───────────────────────────────────────┤"
  563. ATSA 13 22 (contrast) "Enter method #:"
  564. ATSA 14 30 (contrast) " Press ESC to cancel "
  565. ATGE 13 48 (contrast) 1 S0
  566. WCLO
  567. RETU
  568. Ask_Name:
  569. WOPE 10 10 13 70 (contrast) NAMEESC
  570. ATSA 10 12 (contrast) " Learn Up/Down Filename "
  571. ATSA 11 12 (contrast) "Enter a file name to be transferred:"
  572. ATSA 13 30 (contrast) " Press ESC to cancel "
  573. ATGE 12 12 (contrast) 54 S1
  574. WCLO
  575. LJ S1
  576. S1=S1&""
  577. RETU
  578. NAMEESC:
  579. S1=""
  580. RETU
  581. Dial:
  582. GOSU Ask_Dial
  583. IF NOT SUCCESS or NULL S2 GOTO Main
  584. IF FIND S2 "m"
  585. GOSU Ask_numb
  586. IF FAILED or NULL S1 GOTO Main
  587. MDIA S1
  588. ELSE
  589. DIAL S2
  590. ENDI
  591. IF FAILED GOTO Main
  592. WRIT "; Dialing!"
  593. IF FIND S2 "m"
  594. WRIT "MDIAL `""
  595. WRIT S1
  596. WRIT "`"!"
  597. WRIT "IF FAILED EXIT!"
  598. ELSE
  599. WRIT "IF NOT LINKED!"
  600. WRIT "     DIAL `""
  601. WRIT S2
  602. WRIT "`"!"
  603. WRIT "     IF FAILED EXIT!"
  604. WRIT "     ENDIF!"
  605. ENDI
  606. GOTO Main
  607. Ask_Numb:
  608. WOPE 10 10 13 70 (contrast) NAMEESC
  609. ATSA 10 12 (contrast) " Learn Manual Dial "
  610. ATSA 11 12 (contrast) "Enter the number to dial:"
  611. ATSA 13 30 (contrast) " Press ESC to cancel "
  612. ATGE 12 12 (contrast) 14 S1
  613. WCLO
  614. LJ S1
  615. S1=S1&""
  616. RETU
  617. Ask_Dial:
  618. N0=0
  619. WOPE 2 20 15 60 (contrast) ASK_ESC
  620. ATSA 2 22 (contrast) " Learn Dial  "
  621. ATSA 13 20 (contrast) "├───────────────────────────────────────┤"
  622. ATSA 14 22 (contrast) "